package chen.yi.component.mysql.mapper;

import chen.yi.component.mysql.po.FieldPO;
import chen.yi.component.mysql.po.TablePO;
import org.apache.ibatis.annotations.Param;

import java.util.List;


/**
 * 表相关操作
 * @author huat
 **/
public interface TableInfoMapper {
    /**
     * 根据表名判断表是否存在
     * @param tableName 表名
     * @return 存在返回表名 不存在返回null
     */
    String existTable(@Param("tableName") String tableName);

    /**
     * 删除表
     * @param tableName 表名
     * @return 返回影响
     */
    int dropTable(@Param("tableName") String tableName);

    /**
     * 根据表名查询表信息
     * @param tableName 表名
     * @return 表信息
     */
    TablePO getTableInfoByName(@Param("tableName") String tableName);

    /**
     * 通过表名获取字段
     * @param tableName 表名
     * @return 字段集合
     */
    List<FieldPO> getFieldByTableName(@Param("tableName") String tableName);

    /**
     * 通过表名和列名删除列
     * @param tableName 表名
     * @param fieldName 列名
     */
    void deleteFieldByName(@Param("tableName") String tableName,@Param("fieldName") String fieldName);


}
